package com.acminds.fotoporter.persistence.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the USER_INFO database table.
 * 
 */
@Entity
@Table(name="USER_INFO")
public class UserInfo extends com.acminds.fotoporter.persistence.BaseDTO implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="USER_INFO_ID")
	private int userInfoId;

	@Column(name="CREATE_DATE")
	private Timestamp createDate;

	@Column(name="FIRST_NAME")
	private String firstName;

    @Temporal( TemporalType.DATE)
	@Column(name="LAST_LOGIN_DATE")
	private Date lastLoginDate;

	@Column(name="LAST_NAME")
	private String lastName;

	@Column(name="MIDDLE_NAME")
	private String middleName;

	@Column(name="PASSWORD")
	private String password;

	@Column(name="STATUS")
	private int status;

	@Column(name="USER_NAME")
	private String userName;

	@Column(name="USER_TYPE")
	private int userType;

	//bi-directional many-to-one association to Album
	@OneToMany(mappedBy="userInfo")
	private List<Album> albums;

	//bi-directional many-to-one association to Category
	@OneToMany(mappedBy="userInfo")
	private List<Category> categories;

	//bi-directional many-to-one association to Feature
	@OneToMany(mappedBy="userInfo")
	private List<Feature> features;

	//bi-directional many-to-one association to FeatureGroup
	@OneToMany(mappedBy="userInfo")
	private List<FeatureGroup> featureGroups;

	//bi-directional many-to-one association to Item
	@OneToMany(mappedBy="userInfo")
	private List<Item> items;

	//bi-directional many-to-one association to Location
	@OneToMany(mappedBy="userInfo")
	private List<Location> locations;

	//bi-directional many-to-one association to OrderRequest
	@OneToMany(mappedBy="userInfo")
	private List<OrderRequest> orderRequests;

	//bi-directional many-to-one association to Client
    @ManyToOne
	@JoinColumn(name="CLIENT_ID")
	private Client client;

	//bi-directional many-to-one association to Role
    @ManyToOne
	@JoinColumn(name="ROLE_ID")
	private Role role;

	//bi-directional many-to-one association to Advertisement
	@OneToMany(mappedBy="userInfo")
	private List<Advertisement> advertisements;

    public UserInfo() {
    }

	public int getUserInfoId() {
		return this.userInfoId;
	}

	public void setUserInfoId(int userInfoId) {
		this.userInfoId = userInfoId;
	}

	public Timestamp getCreateDate() {
		return this.createDate;
	}

	public void setCreateDate(Timestamp createDate) {
		this.createDate = createDate;
	}

	public String getFirstName() {
		return this.firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public Date getLastLoginDate() {
		return this.lastLoginDate;
	}

	public void setLastLoginDate(Date lastLoginDate) {
		this.lastLoginDate = lastLoginDate;
	}

	public String getLastName() {
		return this.lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getMiddleName() {
		return this.middleName;
	}

	public void setMiddleName(String middleName) {
		this.middleName = middleName;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public int getStatus() {
		return this.status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public String getUserName() {
		return this.userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public int getUserType() {
		return this.userType;
	}

	public void setUserType(int userType) {
		this.userType = userType;
	}

	public List<Album> getAlbums() {
		return this.albums;
	}

	public void setAlbums(List<Album> albums) {
		this.albums = albums;
	}
	
	public List<Category> getCategories() {
		return this.categories;
	}

	public void setCategories(List<Category> categories) {
		this.categories = categories;
	}
	
	public List<Feature> getFeatures() {
		return this.features;
	}

	public void setFeatures(List<Feature> features) {
		this.features = features;
	}
	
	public List<FeatureGroup> getFeatureGroups() {
		return this.featureGroups;
	}

	public void setFeatureGroups(List<FeatureGroup> featureGroups) {
		this.featureGroups = featureGroups;
	}
	
	public List<Item> getItems() {
		return this.items;
	}

	public void setItems(List<Item> items) {
		this.items = items;
	}
	
	public List<Location> getLocations() {
		return this.locations;
	}

	public void setLocations(List<Location> locations) {
		this.locations = locations;
	}
	
	public List<OrderRequest> getOrderRequests() {
		return this.orderRequests;
	}

	public void setOrderRequests(List<OrderRequest> orderRequests) {
		this.orderRequests = orderRequests;
	}
	
	public Client getClient() {
		return this.client;
	}

	public void setClient(Client client) {
		this.client = client;
	}
	
	public Role getRole() {
		return this.role;
	}

	public void setRole(Role role) {
		this.role = role;
	}
	
	public List<Advertisement> getAdvertisements() {
		return this.advertisements;
	}

	public void setAdvertisements(List<Advertisement> advertisements) {
		this.advertisements = advertisements;
	}
	
}